%ifndef _MEMSET_
%define _MEMSET_
; void* __cdecl memset(void* destination, int fill, size_t length)

%define destination dword [esp + 4]
%define fill dword [esp + 8]
%define length dword [esp + 12]

global memset
memset:
    mov edx, destination
    mov ecx, length
    mov eax, fill ; 仅使用低 8 位
    dec ecx
memset.fill:
    mov [edx + ecx], al
    loop memset.fill
    mov [edx + ecx], al
memset.ret:
    mov eax, edx
    ret
%undef destination
%undef fill
%undef length
%endif